package cn.edu.zjgsu.ito.service;

import java.util.List;

import cn.edu.zjgsu.ito.vo.DemandIdVo;
import cn.edu.zjgsu.ito.vo.DeterminePriceSaveVo;
import cn.edu.zjgsu.ito.vo.FindCourierSaveVo;
import cn.edu.zjgsu.ito.vo.OrderIdVo;
import cn.edu.zjgsu.ito.vo.OrderNoCourierShowVo;
import cn.edu.zjgsu.ito.vo.OrderStateShowVo;
import cn.edu.zjgsu.ito.vo.PayCourierPriceSaveVo;
import cn.edu.zjgsu.ito.vo.PayCourierPriceShowVo;
import cn.edu.zjgsu.ito.vo.PurchaseCommentsSaveVo;
import cn.edu.zjgsu.ito.vo.PurchaseHomeShowVo;
import cn.edu.zjgsu.ito.vo.DemandMessageShowVo;
import cn.edu.zjgsu.ito.vo.RefundReasonSaveVo;
import cn.edu.zjgsu.ito.vo.UserHomeMessageShowVo;

/**
 * 用户代购接口类
 * @author Administrator
 *
 */
public interface UserPurchaseServiceI {

	/**
	 * 查看求购订单详情
	 * @param demandIdVo
	 * @return
	 */
	public DemandMessageShowVo demandMessage(DemandIdVo demandIdVo);

	/**
	 * 接收求购订单
	 * @param demandIdVo
	 * @return 
	 */
	public OrderIdVo acceptSuccess(DemandIdVo demandIdVo,int userId);

	/**
	 *代购更换状态---->正在购买 
	 * @param orderIdVo
	 * @return 
	 */
//	public OrderStateShowVo isBuying(OrderIdVo orderIdVo);

	/**
	 * 购买完成接口
	 * @param orderIdVo
	 * @return
	 */
//	public OrderStateShowVo buyComplete(OrderIdVo orderIdVo);

	/**
	 * 我来帮首页信息接口
	 * @return
	 */
	public List<PurchaseHomeShowVo> homePage();

	/**
	 * 用户接单成功后的接口
	 * @param orderIdVo
	 * @return
	 */
	public OrderNoCourierShowVo orderMessage(OrderIdVo orderIdVo);

	/**
	 * 右上角用户信息
	 * @param userId
	 * @return
	 */
	public UserHomeMessageShowVo userHome(int userId);

	/**
	 * 代购请求付款
	 * @param determinePriceSaveVo
	 * @return
	 */
	public OrderStateShowVo determinePrice(
			DeterminePriceSaveVo determinePriceSaveVo);

	/**
	 * 存发货消息
	 * @param findCourierSaveVo
	 */
	public void findCourier(FindCourierSaveVo findCourierSaveVo);

	/**
	 * 用户同意退款申请
	 * @param orderIdVo
	 * @return
	 */
	public OrderStateShowVo acceptRefund(RefundReasonSaveVo refundReasonSaveVo);

	/**
	 * 通过订单创建时间搜索
	 * @return
	 */
	public List<PurchaseHomeShowVo> orderByHomePage(int temp);

	/**
	 * 搜索
	 * @param temp
	 * @return
	 */
	public List<PurchaseHomeShowVo> seletByHomePage(String temp);

	/**
	 * 代购支付快递费
	 * @param orderIdVo
	 * @return
	 */
	public PayCourierPriceShowVo payCourierPricePage(OrderIdVo orderIdVo);

	/**
	 * 选择代金券
	 * @param payCourierPriceSaveVo
	 * @return
	 */
	public OrderIdVo payCourierPricePageVoucher(
			PayCourierPriceSaveVo payCourierPriceSaveVo);

	/**
	 * 支付快递费
	 * @param orderIdVo
	 */
	public void payCourierPrice(OrderIdVo orderIdVo);

	/**
	 * 代购者评分
	 * @param purchaseCommentsSaveVo
	 */
	public void userPurchaseComments(
			PurchaseCommentsSaveVo purchaseCommentsSaveVo);


}
